#include <iostream>
#include <future>
#include <unistd.h>
using namespace std;

int Add(int num1, int num2)
{
    cout << "计算中..." << endl;
    return num1 + num2;
}

int main()
{
    // 1.deferred参数:谁调用谁执行,是在get函数调用的时候才执行任务
    // future<int> ret = async(launch::deferred, Add, 10, 20);

    // 2.async参数:是在调用async函数的时候创建一个线程去执行任务
    future<int> ret = async(launch::async, Add, 10, 20);

    sleep(2);
    cout << "----------------------------------" << endl;

    cout << ret.get() << endl; // get函数在未获取到值时都会进行阻塞等待

    return 0;
}